3. 데이터 전송 기초 3

1. 라우터 (Router): 네트워크 간 패킷 라우팅의 핵심

라우터의 기본 동작 원리

라우터 패킷 처리 흐름
════════════════════════════════════════════

패킷 수신
   │
   ↓
헤더 분석 (목적지 IP 확인)
   │
   ↓
내부 LAN 대상인가?
   │
   ├─ YES → 내부 라우팅 (LAN 포트로 전달)
   │
   └─ NO  → 외부 라우팅 (WAN 포트로 전달)


라우터 구조
════════════════════════════════════════════

[LAN 포트] → 내부 네트워크 연결
[WAN 포트] → 외부 네트워크 연결


대규모 네트워크 연결
════════════════════════════════════════════

인접 라우터: 이더넷 케이블로 직접 연결
원거리 라우터: 전용선/ISP 회선 사용
└─ 인터넷 구조의 기반

라우터의 네트워크 계층 특성


2. 액세스 포인트 (Access Point): 무선 연결의 허브

액세스 포인트의 역할과 특성

액세스 포인트 역할
════════════════════════════════════════════

[무선 장치들] )))))) [액세스 포인트 (L2 장치)] ──── [유선 네트워크]


광대역 라우터의 구성
════════════════════════════════════════════

광대역 라우터
   ├─ 라우터 기능 (L3 계층)
   └─ 액세스 포인트 (L2 계층)


무선 LAN 연결 모드
════════════════════════════════════════════

1. 인프라스트럭처 모드
   - AP를 통한 연결
   - 일반적인 WiFi 환경

2. 애드혹 모드
   - 장치 간 직접 연결
   - 컴퓨터-프린터 직접 연결 등

핵심 특징 분석

연결 방식별 특성

모드 특징 용도
인프라스트럭처 모드 액세스 포인트를 통한 연결 일반적인 WiFi 환경
애드혹 모드 장치 간 직접 무선 링크 컴퓨터-프린터 직접 연결 등

3. 허브와 스위치: 연결 장치의 진화

허브 (Hub): 기본 접속 장치

허브의 기능
════════════════════════════════════════════

1. 다수 회선 정리 / 기기 접속 확보
2. 신호 증폭 (리피터 기능)
3. 캐스케이드 연결 (허브 간 연결)


현재 허브의 발전
════════════════════════════════════════════

전자회로/CPU 장착
   │
   ├─ 이더넷 프레임 해석
   │
   └─ 스위칭 허브 (실질적으로 스위치)

스위치의 계층별 분류와 현대적 발전

스위치 계층별 분류
════════════════════════════════════════════

L2 스위치 (데이터 링크 계층)
   ├─ MAC 주소 기반 프레임 스위칭
   └─ VLAN 지원, 세그먼트 분할

L3 스위치 (네트워크 계층)
   ├─ IP 기반 라우팅 (하드웨어 고속 처리)
   └─ 다수 포트 지원, 라우터 기능 통합

L4 스위치 (전송 계층)
   ├─ 포트/세션 기반 로드 밸런싱
   └─ TCP/UDP 헤더 분석, 트래픽 분산

L7 스위치 (애플리케이션 계층)
   ├─ HTTP/HTTPS 콘텐츠 분석
   └─ 고급 로드밸런싱, SSL 오프로딩

L4/L7 스위치: 현대 네트워크의 핵심

L4 스위치 (전송 계층 스위치)

L7 스위치 (애플리케이션 계층 스위치)

L7 스위치 처리 흐름 예시
════════════════════════════════════════════════════════════════

클라이언트 → L7 스위치/로드밸런서
   │
   │ HTTP 요청 (URL: /api/users)
   │
   ↓
L7 스위치: URL 패턴 분석 (Content-based Routing)
   │
   └─→ API서버로 라우팅


클라이언트 → L7 스위치/로드밸런서
   │
   │ HTTP 요청 (URL: /images/logo.png)
   │
   ↓
L7 스위치: 정적 콘텐츠, 로드밸런싱 적용
   │
   └─→ 웹서버1로 전달


클라이언트 → L7 스위치/로드밸런서
   │
   │ HTTPS 요청
   │
   ↓
L7 스위치: SSL 터미네이션, 복호화 후 전달
   │
   └─→ 웹서버2로 HTTP 변환하여 전달

현대적 로드밸런서의 실전 활용

클라우드 환경에서의 로드밸런서 구성

클라우드 로드밸런서 계층 구조
════════════════════════════════════════════

[인터넷 - 사용자 요청]
   │
   ↓
[로드밸런서 계층]
   ├─ L7 로드밸런서 (ALB/CloudFront)
   └─ L4 로드밸런서 (NLB/ELB)
      │
      ↓
[애플리케이션 계층]
   ├─ 웹서버 풀
   ├─ API 서버 풀
   └─ 데이터베이스 클러스터
      ↑
      │
[모니터링 & 헬스체크] ←─ 각 계층 상태 감시

실제 구현 예시: Nginx 로드밸런서 설정

upstream backend_servers {
    # L4 로드밸런싱: 라운드 로빈
    server 192.168.1.10:8080 weight=3;
    server 192.168.1.11:8080 weight=2;
    server 192.168.1.12:8080 weight=1;

    # 헬스체크
    health_check interval=30s fails=3 passes=2;
}

server {
    listen 80;
    server_name example.com;

    # L7 콘텐츠 기반 라우팅
    location /api/ {
        proxy_pass http://api_servers;
        proxy_set_header Host $host;
    }

    location /static/ {
        proxy_pass http://static_servers;
        expires 1y;
    }

    location / {
        proxy_pass http://backend_servers;
        proxy_set_header X-Real-IP $remote_addr;
    }
}


4. 케이블과 커넥터: 물리적 연결의 기반

케이블 유형별 특성

케이블 분류
════════════════════════════════════════════

이더넷 LAN 케이블
   - 일반적 사용
   - 트위스트 페어

광섬유 케이블
   - 고속/장거리 전송
   - 10Gbps 이상 장비에 필수


전송 방식
════════════════════════════════════════════

직렬 케이블: 1bit씩 전송
병렬 케이블: 8bit/16bit 단위 전송


고속 네트워크
════════════════════════════════════════════

10Gbps 이상 장비
   └─ 광섬유 케이블 필수

커넥터 유형


5. 현대 네트워크 인프라 통합 구조

현대 네트워크 통합 구조
════════════════════════════════════════════════════════════════

[외부 네트워크]
   ├─ 인터넷
   └─ CDN/클라우드 서비스
      │
      ↓
[경계 및 보안 계층]
   ├─ 엣지 라우터
   ├─ 방화벽
   └─ L7 스위치/WAF (SSL 오프로딩)
      │
      ↓
[로드밸런싱 계층]
   ├─ L4 로드밸런서 (세션 기반 분산)
   └─ L7 로드밸런서 (콘텐츠 기반 라우팅)
      │
      ↓
[내부 네트워크]
   ├─ L3 스위치 (VLAN & 라우팅)
   ├─ L2 스위치 (세그먼트 연결)
   └─ 액세스 포인트 (무선 연결)
      │
      ↓
[서비스 계층]
   ├─ 웹서버 클러스터
   ├─ 애플리케이션 서버
   └─ 데이터베이스 클러스터
      ↑
      │
[모니터링 시스템] ←─ 각 계층 감시

현대적 네트워크 설계의 핵심 원칙

1. 다층 방어 구조

2. 확장성과 고가용성

3. 성능 최적화

로드밸런서 = 스위치의 소프트웨어 기능 중 하나

본질적으로는 모두 같은 일

패킷 처리의 본질
════════════════════════════════════════════

패킷이 들어옴
   │
   ↓
어디로 보낼지 결정
   │
   ↓
목적지로 전달


구현 방법만 다름
════════════════════════════════════════════

하드웨어 ASIC    → '스위치'
소프트웨어       → '로드밸런서'
클라우드 서비스  → 'managed LB'

실제로는 전부 같은 로직

L2 스위치: "MAC 주소 보고 → 포트 결정"
L3 스위치: "IP 주소 보고 → 다음 홉 결정"
L4 로드밸런서: "포트+IP 보고 → 서버 결정"
L7 로드밸런서: "HTTP 헤더 보고 → 서버 결정"

결국 다 동일한 패턴

패킷 분석 → 룰 매칭 → 목적지 결정 → 전달

차이는 단지 구현 방식

물리적 스위치 (하드웨어)

ASIC 칩에 룰 하드코딩 → 나노초 단위 처리

로드밸런서 (소프트웨어)

CPU에서 소프트웨어로 룰 처리 → 마이크로초 단위 처리

클라우드 로드밸런서

분산 시스템으로 룰 처리 → 네트워크 지연 + 처리시간

네트워크 장비의 본질
════════════════════════════════════════════

공통 구성 요소:
   ├─ 패킷 라우팅 엔진
   ├─ 룰 매칭 알고리즘
   └─ 포워딩 테이블


구현체들 (이름만 다름):
════════════════════════════════════════════

L2 스위치     → MAC 테이블
L3 스위치     → 라우팅 테이블
L4 로드밸런서 → 서버 풀
L7 로드밸런서 → 컨텐츠 룰

핵심 통찰:

실무에서 일어나는 일:

# Nginx 설정 파일
upstream backend {
    server 192.168.1.10;  # 스위치의 포트 테이블과 동일 로직
    server 192.168.1.11;
}

location /api {
    proxy_pass http://backend;  # L7 스위치와 동일한 패킷 전달
}

결론: 네트워킹 = 패킷을 "어디로 보낼지" 결정할뿐